package com.cetcs.kmga.dataManager.dao.mybatis;

import com.cetcs.kmga.common.Data;
import com.cetcs.kmga.dataManager.entity.dataManager.RiskEvent;
import com.cetcs.kmga.dataManager.entity.dataManager.vo.RiskEventVo;
import com.cetcs.kmga.dataManager.entity.global.HistogramChart;
import com.cetcs.kmga.dataManager.entity.global.PieChart;
import com.cetcs.kmga.dataManager.entity.global.PolygonalGraph;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import org.springframework.stereotype.Repository;

import java.util.List;


/**
 * 风险事件dao层
 *
 * @author xutao
 * @version V1.0 创建时间：2017-10-16 13:57
 * Copyright 2017 by CETC
 */
@Repository
public interface RiskEventMapper {


    /**
     * 查询风险日志记录列表
     *
     * @param params
     * @return
     */
    PageList<RiskEvent> findRiskEventListByDataParams(Data params, PageBounds pageBounds);

    List<RiskEvent> findRiskEventListByDataParams(Data params);

    /**
     * 查询风险日志记录总数
     *
     * @param params
     * @return
     */
    Integer findRiskEventTotalNumByDataParams(Data params);

    /**
     * 新增风险事件日志记录
     *
     * @param record
     * @return
     */
    int addRiskEventRecord(RiskEvent record);

    /**
     * 增加事件处理信息
     *
     * @param record
     * @return
     */
    int addRiskEventDealInfo(RiskEvent record);


    /****************************************风险事件概况*****************************/

    /**
     * 风险事件统计
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    List<PolygonalGraph> findEventStatistics(Data dataMap);

    /**
     * 风险级别
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    List<PieChart> findRiskLevelStatistic(Data dataMap);

    /**
     * 风险数据源
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    List<HistogramChart> findRiskDataSourceStatistic(Data dataMap);

    /**
     * 风险数据源 分页
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    PageList<RiskEventVo> findRiskDataSourceListsByPage(Data dataMap, PageBounds pageBounds);

    /**
     * 风险IP
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    List<HistogramChart> findRiskIpStatistic(Data dataMap);

    /**
     * 风险IP 分页
     *
     * @param dataMap 参数为事件  开始时间  结束时间
     * @return
     */
    PageList<RiskEventVo> findRiskIPListsByPage(Data dataMap, PageBounds pageBounds);
}
